package com.prj.ufdm.cloud.ms.auth.bpo;

import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.prj.ufdm.cloud.ms.auth.model.SysFunction;
import com.prj.ufdm.cloud.ms.core.bpo.BaseBPO;

/**  
 * Desc: 系统功能
 * @author 胡义振  
 * @date 2018年3月26日  
*/
public interface SysFunctionBPO extends BaseBPO<SysFunction> {
	
	    /**
		 * DESC: 查询Json格式包含children的递归菜单
		 * @auther 胡义振
		 * @return 资源列表
		 * @throws Exception
		 */
	    public List<JSONObject> doExchangeFunctionListToJson(List<SysFunction> listSysFunctionList) throws Exception;
	
	    /**
		 * DESC: 查询所有功能信息
		 * @auther 胡义振
		 * @param userId 用户ID
		 * @return 资源列表
		 * @throws Exception
		 */
		public List<SysFunction> doGetFunctionList(SysFunction sysFunction) throws Exception;
		
		
		
		/**
		 * DESC: 根据角色ID，查询角色的功能
		 * @auther 胡义振
		 * @param roleId 角色ID
		 * @return 
		 * @throws Exception
		 */
		public List<SysFunction> doGetFunctionListByRoleId(String roleId) throws Exception;
		
		
		/**
		 * DESC: 删除系统功能
		 * @auther 胡义振
		 * @param functionId 系统功能ID
		 * @return 
		 * @throws Exception
		 */
		public Integer doRmFunctionById(String functionId) throws Exception;
		
		/**
		 * 检查菜单名称是否存在
		 * @param functionName
		 * @param functionId
		 * @return
		 * @throws Exception
		 */
		public boolean doCheckSysFunctionNameExist(String functionName,String functionId) throws Exception;

}
